﻿// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Unity Shaders Book/Chapter05/Simple Shader"
{
    SubShader
    {
        Pass{
            CGPROGRAM
            // 告诉Unity vert 方法是顶点着色器
            #pragma vertex vert
            // 告诉Unity frag 方法是片元着色器
            #pragma fragment frag

            // POSITION 语义定义了输入顶点的位置
            // SV_POSITION 告诉 Unity 顶点着色器输出的是裁剪空间中的顶点坐标
            // 这些语义都是必要的,否则Unity 不知道用户输入和输出的是什么
            float4 vert(float4 v: POSITION) :SV_POSITION{
                return UnityObjectToClipPos(v);
            }

            // SV_Target也是HLSL中的一个系统语义,告诉渲染器输出颜色存储到一个渲染目标
            // fragment shader 输出的颜色的每个分量取值范围是 [0,1]
            fixed4 frag(): SV_Target {
                return fixed4(1.0, 1.0, 1.0, 1.0);
            }
            ENDCG
        }
    }
}
